D7 a Apache 2.0.47

Otázka od: Slavomir Skopalik

4. 11. 2003 16:36

Mam zde jedno reseni neprijemneho problemu delphi
pri pouziti WebSnapu.
Pokud mate 2CPU stroj + win2000 (jiny OS nebyl testovan),
tak delphi modul do apache padal (nahodne pady pri interpretaci JScriptu)
(nemluve o tom, ze puvodni kod od borlandu nefungoval
s novejsim apache, nez je 2.0.39 a borland zatim nevydal
oficialni zaplatu).
Problem byl ve skriptovacim enginu, ktery mel byt thread safe,
ale neni.
Problem jsme vyresili hrubou silou, tj. pridanim kriticke sekce
do volani od apache, takze sice modul nemuze vyuzit sily dvou CPU,
ale zato funguje.

Zde je kod opravy:

unit ApacheTwoApp;
.
.
.

var CS:TRTLCriticalSection;

function DefaultHandler(r: Prequest_rec): Integer; cdecl;
var
  RequestedHandler: string;
begin
  EnterCriticalSection(CS);
  try
    RequestedHandler := r^.handler;
    if SameText(RequestedHandler, Handler) then
      Result := (Application as TApacheTwoApplication).ProcessRequest(r^)
    else
      Result := DECLINED;
  finally
    LeaveCriticalSection(CS);
  end;
end;

procedure RegisterHooks(p: Papr_pool_t); cdecl;
begin
  EnterCriticalSection(CS);
  try
  ap_hook_handler(DefaultHandler, nil, nil, APR_HOOK_MIDDLE);
  if Assigned(OnRegisterHooks) then
    OnRegisterHooks(p);
  finally
    LeaveCriticalSection(CS);
  end;
end;
.
.
.
.

initialization
  InitializeCriticalSection(CS);
  InitApplication;

finalization
  DeleteCriticalSection(CS);

end.

 Slavek

PS: Doufam, ze panove tento problem pradaji dale ve strukturach
borlandu, pripadne pripravi seriozni reseni tohoto problemu.


ing. Slavomir Skopalik DEL a.s.
Olomoucka 355 Marianske udoli 783 75
Czech Republic
----------------------------------------------
Tel: 585 353 548
Mobil: 602 795 874
Fax: 585 352 364
e-mail:skopalik@hlubocky.del.cz
http://hlubocky.del.cz
 




----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Petr Vones

4. 11. 2003 16:50

From: "Slavomir Skopalik" <skopalik@hlubocky.del.cz>
> Pokud mate 2CPU stroj + win2000 (jiny OS nebyl testovan),
> tak delphi modul do apache padal (nahodne pady pri interpretaci JScriptu)

Neni to podobny problem jako tohle ?
http://groups.google.com/groups?hl=en&selm=3f4b773e%241%40newsgroups.borland.com

> (nemluve o tom, ze puvodni kod od borlandu nefungoval
> s novejsim apache, nez je 2.0.39 a borland zatim nevydal
> oficialni zaplatu).

Znamy problem.

Petr Vones





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Slavomir Skopalik

4. 11. 2003 18:23

Asi ne, jelikoz primo zadny ActiveX nepouzivame, mozna
to je problem v tom, jak borland pristupuje ke skriptovacimu enginu.
Tento problem se nam podarilo nasimulovat pouze 2 CPU strojich.
Dotaz nepadne na Acces Violation, ale na chybu pri parsingu
skriptu (neznamy parameter, chybna syntaxe).
Zitra to zkusime, mozna nam to pomuze.

 Slavek

> From: "Slavomir Skopalik" <skopalik@hlubocky.del.cz>
> > Pokud mate 2CPU stroj + win2000 (jiny OS nebyl testovan),
> > tak delphi modul do apache padal (nahodne pady pri interpretaci JScriptu)
>
> Neni to podobny problem jako tohle ?
>
http://groups.google.com/groups?hl=en&selm=3f4b773e%241%40newsgroups.borland.com





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Pavel Zednik

5. 11. 2003 12:15

Bohuzel i po pridani kritickych sekci do ApacheTwoApp se modul Apache
nechova pri vicenasobnych pozadavcich na stranku jak by mel a konci na chybe
"ECannotCreateScriptEngine:Cannot create script engine: JScript. Error:
8007045A".
Neni o tom neco znamo?

Pavel Zednik

> -----Original Message-----
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of Petr Vones
> Sent: Tuesday, November 04, 2003 4:33 PM
> To: delphi-l@clexpert.cz
> Subject: Re: D7 a Apache 2.0.47
>
>
> From: "Slavomir Skopalik" <skopalik@hlubocky.del.cz>
> > Pokud mate 2CPU stroj + win2000 (jiny OS nebyl testovan),
> > tak delphi modul do apache padal (nahodne pady pri interpretaci
> JScriptu)
>
> Neni to podobny problem jako tohle ?
> http://groups.google.com/groups?hl=en&selm=3f4b773e%241%40newsgrou
> ps.borland.com
>
> > (nemluve o tom, ze puvodni kod od borlandu nefungoval
> > s novejsim apache, nez je 2.0.39 a borland zatim nevydal
> > oficialni zaplatu).
>
> Znamy problem.
>
> Petr Vones
>
>
>
>





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Petr Vones

5. 11. 2003 14:36

From: "Slavomir Skopalik" <skopalik@hlubocky.del.cz>
> Tento problem se nam podarilo nasimulovat pouze 2 CPU strojich.

Podle prispevku v newsech ma Borland stale problemy s nekterym kodem RTL na
viceprocesorovych strojich. Tyka se to konkretne tridy TMREWSync.

Petr Vones





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)

Odpovedá: Petr Vones

5. 11. 2003 14:37

From: "Pavel Zednik" <pavel.zednik@hlubocky.del.cz>
> Bohuzel i po pridani kritickych sekci do ApacheTwoApp se modul Apache
> nechova pri vicenasobnych pozadavcich na stranku jak by mel a konci na chybe
>
"ECannotCreateScriptEngine:Cannot create script engine: JScript. Error:
> 8007045A".
Neni o tom neco znamo?

Ten script engine bude pravdepodobne COM objekt, takze bych hledal chybu v
inicializaci COMu (pro kazdy vytvoreny thread) v Apache modulu.

Taktez doporucuji do toho Apache modulu pridat logovani stacku po vyjimce, coz
muze pomoct lokalizovat ten problem. JclDebug lze v Apache 2 modulu pouzit bez
problemu. Pripadny dotaz na konkretni implementaci mailem.

V kazdem pripade posli popis tohoto problemu do prislusnych newsu u Borlandu,
protoze tam se najde vice lidi co pouziva WebSnap:
news://newsgroups.borland.com/borland.public.delphi.internet.websnap

Petr Vones





----------
* www.inMail.sk - Vasa emailova adresa na cely zivot ZDARMA
* Mail neobsahuje virusy. Zkontrolovane antivirusom NOD32 (www.eset.sk)
* www.SlovakNET.sk - profesionalny webhosting, domena .SK ZADARMO
* Zoner Media Explorer 5 - stiahnite si pomocnika pre digitalnu fotografiu
(zme.zoner.sk)